React Hooks
React16.8
React Native0.59使
ExpoReact NativeforkExposdk33

function componentstatefullogic
stateful logic(state)function component
lifecycle methods()
useEffectuseStatehook
custom hook使()

function component
class
function componentstatestateful logic
class使
this
bind
function componentclass
Presentational ComponentsContainer Components
custom hook使
"wrapper hell"
render prophigher-order component
Material-UIstylehook
Presentational Componentswrapper hell
useState useEffect 使
componentDidMount

zakuni
function componentJS
classlifecycle methods使


useState useEffect 使
React function component
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}

const [items, setItems] = useState([]);
addItem = (newItem) => {
setItems([
...items,
newItem
]);
}

lifecycle methods使
lifecycle methods
useEffect 使

useEffect
functional component(effect)使hook
API
(effect)render
componentDidMount componentDidUpdate
componentWillUnmount
rendereffect
Object.is
componentDidMount
effectreturncomponentunmount
callbackasync使?

componentlogic
state
use Hook
stateisolated


redux
componentDidMount componentDidUpdate stateful logic
()
Hooks
componentstate
Custom Hookstate
useReducer Hook
store?
componentlistener(setState)liststatelistener